Crime Data Analysis

Author

Ju & Tim

Published

November 11, 2024

Crime Data Analysis

Data: https://catalog.data.gov/dataset/crime-data-from-2020-to-present

About Data: https://data.lacity.org/Public-Safety/Crime-Data-from-2020-to-Present/2nrs-mtv8/about_data

Anmerkung: Mögliche Ungenauigkeiten, da die Daten von Papier Akten übertragen wurden

OCC = Occurrence

0. Beschreibung des Datensatzes

Crime Data Datensatz aus Los Angeles, USA

Zeitraum: 2020-2024

Beinhaltet

  • Location

  • Modus Operandi

    • zB Täterbeschreibung, ..
  • Zeitpunkt

  • Tatwaffen

  • Opferbeschreibung

    • Geschlecht,

    • Abstammung

    • Alter

  • Tatbeschreibung (Kategorien)

  • Tatbestände (bis zu 4 -> crime codes)

1. Definition/Formulierung der Fragestellung

Aufgabenstellung (10 Pkt.) X

Definieren Sie eine Sie interessierende bzw. interessante Fragestellung im Zusammenhang mit dem Datensatz:

  • Was interessiert Sie an dem Datensatz? X
  • Welche spezifische Fragestellung würden Sie gern mit Hilfe des Datensatzes beantworten? X
  • Was erwarten Sie, angesichts Ihrer Fragestellung, bezüglich des Datensatzes? X
  • Welche Klassen von Straftaten werden wie häufig begangen?
    • Anzahl Proportional zu Schweregrad
    • Viele Diebstahle & andere Straftaten um Geld zu beschaffen
  • Welche Stadtteile sind besonders betroffen?
    • Ärmere Stadtteile
    • Stadtteile mit Gang Gebieten
  • Welche Stadtteile haben besonders viele Straftaten mit Gang Einfluss?
    • Kenne mich zu schlecht in LA aus
    • Nicht Downtown & Beverly Hills (wohlhabendere Gegenden)
  • Welche Bevölkerungsgruppe ist am meisten gefährdet? (Abhängig von Alter, Geschlecht, Abstammung)
    • Junge Männer Schwarzer/Hispanischer Abstammung (weniger Wohlhaben + Gangs)
    • Junge weiße Frauen bei Sexualstraftaten
  • Gibt es besonders Gefährliche Arten von Orten ([Premise Desc])
    • Motels, Parking Lot, Street
    • Internet aka. Cyberspace
  • Welche Arten von Waffen wird am meisten genutzt?
    • Meistens nur unbewaffnet
    • Recht viele Schusswaffen
  • Wie viel Prozent haben zu Verhaftungen (und welcher Art) geführt?
    • Hoffentlich über 80%
  • Gibt es zeitliche Rahmen in denen mehr oder weniger Verbrechen geschehen?
    • Am meisten am Abend/in der Nacht
    • Anfang/Ende des Monats mehr Diebstahl/Raub? –> Gehalt auszahlung Diebstahl usw.?
    • Wochenenden -> Party etc
    • Sommer -> Menschen drehen bei Hitze durch
    • Dunkle Jahreszeiten -> Schutz in der Dunkelheit
  • Wie effektiv ist die LAPD bei der Aufklärung verschiedener Arten von Straftaten?
    • Straftaten mit direktem Opfer mehr (Zeugen vorhanden)
  • Welche Straftaten werden häufig am Anfang/Ende des Monats begangen?
    • Gehalt auszahlung Diebstahl usw.?
  • Wie hat sich die Kriminalität über die 3 Jahre verändert?
    • In Corona deutlich abgenommen, ansonsten zugenommen
  • Wie häufig werden welche Bevölkerungsgruppen angezeigt / vgl zu wie viele Leute welcher Bevölkerungsgruppe wohnen dort?
    • Nicht in Datensatz glaube

2. Laden der Daten

Aufgabenstellung (10 Pkt.)

Laden Sie die Daten in die R-Sitzung und verschaffen Sie sich einen ersten Überblick

  • Welche Typen sind enthalten? X

  • Ist sichergestellt, dass alle Daten den richtigen Type haben? X

  • Haben die Daten irgendwelche “Seltsamkeiten” mit denen Sie umgehen müssen, wie z.B. anders codierte NA’s, mehrere Tabellen, … etc. #

  • Je nach Datensatz können Sie die Daten auch in eine Datenbank laden und dann auf diese in R zugreifen. X

Beschreiben Sie, was Sie tun müssen, bevor Sie die Daten im nächsten Abschnitt aufbereiten und bearbeiten können!

rm(list=ls())

# Laden der Daten
library(readr)
crimes.df.raw <- read_csv('Crime_Data_from_2020_to_Present.csv') 
head(crimes.df.raw)
# A tibble: 6 × 28
      DR_NO `Date Rptd`    `DATE OCC` `TIME OCC` AREA  `AREA NAME` `Rpt Dist No`
      <dbl> <chr>          <chr>      <chr>      <chr> <chr>       <chr>        
1 190326475 03/01/2020 12… 03/01/202… 2130       07    Wilshire    0784         
2 200106753 02/09/2020 12… 02/08/202… 1800       01    Central     0182         
3 200320258 11/11/2020 12… 11/04/202… 1700       03    Southwest   0356         
4 200907217 05/10/2023 12… 03/10/202… 2037       09    Van Nuys    0964         
5 220614831 08/18/2022 12… 08/17/202… 1200       06    Hollywood   0666         
6 231808869 04/04/2023 12… 12/01/202… 2300       18    Southeast   1826         
# ℹ 21 more variables: `Part 1-2` <dbl>, `Crm Cd` <dbl>, `Crm Cd Desc` <chr>,
#   Mocodes <chr>, `Vict Age` <dbl>, `Vict Sex` <chr>, `Vict Descent` <chr>,
#   `Premis Cd` <dbl>, `Premis Desc` <chr>, `Weapon Used Cd` <dbl>,
#   `Weapon Desc` <chr>, Status <chr>, `Status Desc` <chr>, `Crm Cd 1` <dbl>,
#   `Crm Cd 2` <dbl>, `Crm Cd 3` <dbl>, `Crm Cd 4` <lgl>, LOCATION <chr>,
#   `Cross Street` <chr>, LAT <dbl>, LON <dbl>
# Welche Typen sind enthalten?
sapply(crimes.df.raw, class)
         DR_NO      Date Rptd       DATE OCC       TIME OCC           AREA 
     "numeric"    "character"    "character"    "character"    "character" 
     AREA NAME    Rpt Dist No       Part 1-2         Crm Cd    Crm Cd Desc 
   "character"    "character"      "numeric"      "numeric"    "character" 
       Mocodes       Vict Age       Vict Sex   Vict Descent      Premis Cd 
   "character"      "numeric"    "character"    "character"      "numeric" 
   Premis Desc Weapon Used Cd    Weapon Desc         Status    Status Desc 
   "character"      "numeric"    "character"    "character"    "character" 
      Crm Cd 1       Crm Cd 2       Crm Cd 3       Crm Cd 4       LOCATION 
     "numeric"      "numeric"      "numeric"      "logical"    "character" 
  Cross Street            LAT            LON 
   "character"      "numeric"      "numeric" 

Einlesen der Modus Operandi Codes

library(tidyr)
library(dplyr)

mocodes.df.dirty <- read_delim("MO_CODES_Numerical_20191119.txt",
                 delim = "\\s+",
                 col_names = c("CodeBeschreibung"),
                 trim_ws = TRUE)

mocodes.df <- mocodes.df.dirty %>%
  separate(CodeBeschreibung,
           into = c("Code", "Beschreibung"),
           sep = "(?<=[0-9])\\s+",
           extra = "merge") %>%
  mutate(Code = as.integer(Code)) 

Hinzufügen von Straftat Klassifikation

crmcd.categories <- tibble::tribble(
  ~Category, ~Code, ~Description,
  "HOMICIDE", 110, "Homicide",
  "HOMICIDE", 113, "Manslaughter",
  "RAPE", 121, "Rape",
  "RAPE", 122, "Attempted Rape",
  "RAPE", 815, "Sexual Penetration w/ Foreign Object",
  "RAPE", 820, "Oral Copulation",
  "RAPE", 821, "Sodomy",
  "ROBBERY", 210, "Robbery",
  "ROBBERY", 220, "Robbery attempted",
  "AGG. ASSAULTS", 230, "ADW",
  "AGG. ASSAULTS", 231, "ADW against LAPD Police Officer",
  "AGG. ASSAULTS", 235, "Child beating",
  "AGG. ASSAULTS", 236, "Spousal beating",
  "AGG. ASSAULTS", 250, "Shots Fired",
  "AGG. ASSAULTS", 251, "Shots fired inhabited dwelling",
  "AGG. ASSAULTS", 761, "Brandishing",
  "AGG. ASSAULTS", 926, "Train Wrecking",
  "SIMPLE ASSAULT", 435, "Lynching",
  "SIMPLE ASSAULT", 436, "Lynching attempted",
  "SIMPLE ASSAULT", 437, "Resisting Arrest",
  "SIMPLE ASSAULT", 622, "Battery on Firefighter",
  "SIMPLE ASSAULT", 623, "Battery on Police Officer",
  "SIMPLE ASSAULT", 624, "Battery misdemeanor",
  "SIMPLE ASSAULT", 625, "Other Misd. Assault",
  "SIMPLE ASSAULT", 626, "Spousal/Cohab Abuse - Simple Assault",
  "SIMPLE ASSAULT", 627, "Child Abuse - Simple Assault",
  "SIMPLE ASSAULT", 647, "Throwing substance at vehicle",
  "SIMPLE ASSAULT", 763, "Stalking",
  "SIMPLE ASSAULT", 928, "Threatening Phone Calls / Letters",
  "SIMPLE ASSAULT", 930, "Criminal Threats",
  "BURGLARY", 310, "Burglary",
  "BURGLARY", 320, "Burglary attempted",
  "MVT (GTA)", 510, "Stolen Vehicle",
  "MVT (GTA)", 520, "Stolen Vehicle attempted",
  "MVT (GTA)", 433, "DWOC",
  "BTFV", 330, "Burg from Vehicle",
  "BTFV", 331, "Theft from vehicle - $950.01 & over",
  "BTFV", 410, "Burg from Vehicle attempted",
  "BTFV", 420, "Theft from vehicle $950 & under",
  "BTFV", 421, "Theft from vehicle attempted",
  "PERSONAL THEFT", 350, "Theft from person",
  "PERSONAL THEFT", 351, "Pursesnatch",
  "PERSONAL THEFT", 352, "Pickpocket",
  "PERSONAL THEFT", 353, "Drunkroll",
  "PERSONAL THEFT", 450, "Theft from person attempted",
  "PERSONAL THEFT", 451, "Pursesnatch - attempted",
  "PERSONAL THEFT", 452, "Pickpocket - attempted",
  "PERSONAL THEFT", 453, "Drunkroll - attempted",
  "OTHER THEFT", 341, "Theft-$950.01 & over",
  "OTHER THEFT", 343, "Shoplifting - $950.01 & over",
  "OTHER THEFT", 345, "Dishonest employee - grand theft",
  "OTHER THEFT", 440, "Theft-$950 & under",
  "OTHER THEFT", 441, "Theft attempted",
  "OTHER THEFT", 442, "Shoplifting - $950 & under",
  "OTHER THEFT", 443, "Shoplifting - attempted",
  "OTHER THEFT", 444, "Dishonest employee petty theft",
  "OTHER THEFT", 445, "Dishonest employee attempted",
  "OTHER THEFT", 470, "Till Tap-$950.01 & over",
  "OTHER THEFT", 471, "Till Tap-$950 & under",
  "OTHER THEFT", 472, "Till Tap attempted",
  "OTHER THEFT", 473, "Theft from coin/mc $950.01 & over",
  "OTHER THEFT", 474, "Theft from coin m/c $950 & under",
  "OTHER THEFT", 475, "Theft from coin m/c attempted",
  "OTHER THEFT", 480, "Bicycle stolen",
  "OTHER THEFT", 485, "Bicycle attempted stolen",
  "OTHER THEFT", 487, "Boat stolen",
  "OTHER THEFT", 491, "Boat attempted stolen"
)

Analyse Rohdaten

  • Modus Operandi –> richtige Nummern zum zuordnen mit der Tabelle von MO-Codes

  • Datum Format

  • Es existieren NAs in manchen Spalten

  • Nummern als String –> Nummern

In manchen Spalten befinden sich NAs, dazu gehören:

  • Weapon

  • Weapon Descd

  • Crime Codes –> nicht alle Taten

Überprüfung Aussagen der Metadaten:

  • Crm Cd should be the same as Crm Cd 1

    Crm Cd 1 sollte die gleichen Werte wie Crm Cd haben:

    Crm Cd Indicates the crime committed. (Same as Crime Code 1)

    Es gibt aber 1956 unterschiedliche Werte –> todo analyse später

  • Part 1-2 Weg löschen ?!

  • Area = Area Name ?!

  • Premise Cd = Premise Desc ?!

  • Weapon Use Cd = Weapon Desc ?!

3. Transformation & Bearbeitung

Aufgabenstellung (15 Pkt.)
  • Umcodierung von Daten, z.B. numerisch in kategorial

  • Subsetting der Daten

  • Joining von Datentabellen - falls nötig. Welcher Join ist notwendig? Warum?

  • Übersicht der transformierten Daten. Sie können hierzu Hilfsmittel wie glimpse(), skim() und head() benutzen, um Ihre Erläuterungen zu veranschaulichen.

Sind die sich ergebenden Daten so, wie Sie es erwartet haben? Warum oder warum nicht?

Aufbereitung / Umcodierung

# Aufbereitung der Liste mit Codes zur Zuordnung der Modus Operandi
codes_to_numeric <- function(x) {
  if (is.na(x)) {
    return(NA)
  } else {
    return(as.numeric(strsplit(x, " ")[[1]]))
  }
}

# Transformation der Daten zu sinnvollen Datentypen
crimes.df <- transform(crimes.df.raw,
    `Date Rptd` = as.Date(substr(`Date Rptd`, 1, 10), format = "%m/%d/%Y"),
    `DATE OCC` = as.Date(substr(`DATE OCC`, 1, 10), format = "%m/%d/%Y"),
    `TIME OCC` = as.integer(`TIME OCC`),
    `AREA` = as.integer(`AREA`),
    `Rpt Dist No` = as.integer(`Rpt Dist No`),
    `Crm Cd` = as.integer(`Crm Cd`),
    `Mocodes` = lapply(Mocodes, codes_to_numeric)
)
crmCd.diff <- which(crimes.df["Crm Cd"] != crimes.df["Crm Cd 1"])
length(crmCd.diff)
[1] 1956
# Überprüfen, ob die Spalte nur NAs enthält
if (all(is.na(crimes.df[["Crm Cd 4"]]))) {
  crimes.df[["Crm Cd 4"]] <- NULL
}
# Löschen von Part 1-2
# Todo Begründung
crimes.df[["Part 1-2"]] <- NULL

In Klassifizierung der Straftaten sind nicht alle Straftaten enthalten

missing_codes <- crimes.df %>% 
  anti_join(crmcd.categories, by = c("Crm Cd" = "Code")) %>% 
  select(`Crm Cd`, `Crm Cd Desc`) %>% 
  distinct()
missing_categories <- tibble::tribble(
  ~Category, ~Code, ~Description,
  "PERSONAL THEFT", 354, "THEFT OF IDENTITY",
  "SEX OFFENSES", 812, "CRM AGNST CHLD (13 OR UNDER) (14-15 & SUSP 10 YRS OLDER)",
  "SEX OFFENSES", 956, "LETTERS, LEWD  -  TELEPHONE CALLS, LEWD", 
  "OTHER THEFT", 668, "EMBEZZLEMENT, GRAND THEFT ($950.01 & OVER)",
  "SEX OFFENSES", 813, "CHILD ANNOYING (17YRS & UNDER)",
  "SEX OFFENSES", 762, "LEWD CONDUCT",
  "FRAUD", 662, "BUNCO, GRAND THEFT", 
  "SEX OFFENSES", 860, "BATTERY WITH SEXUAL CONTACT",
  "CYBER CRIME", 661, "UNAUTHORIZED COMPUTER ACCESS",
  "SEX OFFENSES", 810, "SEX,UNLAWFUL(INC MUTUAL CONSENT, PENETRATION W/ FRGN OBJ",
  "ORDER VIOLATIONS", 901, "VIOLATION OF RESTRAINING ORDER",
  "VANDALISM", 740, "VANDALISM - FELONY ($400 & OVER, ALL CHURCH VANDALISMS)",
  "OTHER", 946, "OTHER MISCELLANEOUS CRIME",
  "FORGERY/FRAUD", 649, "DOCUMENT FORGERY / STOLEN FELONY",
  "SEX OFFENSES", 845, "SEX OFFENDER REGISTRANT OUT OF COMPLIANCE",
  "VANDALISM", 745, "VANDALISM - MISDEAMEANOR ($399 OR UNDER)",
  "FORGERY/FRAUD", 653, "CREDIT CARDS, FRAUD USE ($950.01 & OVER)",
  "OTHER", 940, "EXTORTION", 
  "ARSON", 648, "ARSON",
  "DISORDERLY CONDUCT", 886, "DISTURBING THE PEACE",
  "FRAUD", 666, "BUNCO, ATTEMPT",
  "HUMAN TRAFFICKING", 921, "HUMAN TRAFFICKING - INVOLUNTARY SERVITUDE",
  "SEX OFFENSES", 805, "PIMPING",
  "SEX OFFENSES", 932, "PEEPING TOM",
  "ORDER VIOLATIONS", 900, "VIOLATION OF COURT ORDER", 
  "ORDER VIOLATIONS", 903, "CONTEMPT OF COURT",
  "FALSE REPORT", 439, "FALSE POLICE REPORT",
  "OTHER", 954, "CONTRIBUTING", 
  "OTHER", 434, "FALSE IMPRISONMENT",
  "FORGERY/FRAUD", 654, "CREDIT CARDS, FRAUD USE ($950 & UNDER", 
  "KIDNAPPING", 922, "CHILD STEALING",
  "SEX OFFENSES", 760, "LEWD/LASCIVIOUS ACTS WITH CHILD",
  "OTHER THEFT", 670, "EMBEZZLEMENT, PETTY THEFT ($950 & UNDER)",
  "SEX OFFENSES", 850, "INDECENT EXPOSURE",
  "CHILD NEGLECT", 237, "CHILD NEGLECT (SEE 300 W.I.C.)",
  "TRESPASSING", 888, "TRESPASSING",
  "WEAPONS", 753, "DISCHARGE FIREARMS/SHOTS FIRED",
  "HUMAN TRAFFICKING", 822, "HUMAN TRAFFICKING - COMMERCIAL SEX ACTS",
  "SEX OFFENSES", 806, "PANDERING",
  "WEAPONS", 906, "FIREARMS RESTRAINING ORDER (FIREARMS RO)",
  "MVT (GTA)", 522, "VEHICLE, STOLEN - OTHER (MOTORIZED SCOOTERS, BIKES, ETC)", 
  "TRAFFIC", 890, "FAILURE TO YIELD",
  "OTHER", 755, "BOMB SCARE",
  "FRAUD", 664, "BUNCO, PETTY THEFT",
  "THEFT", 951, "DEFRAUDING INNKEEPER/THEFT OF SERVICES, $950 & UNDER",
  "KIDNAPPING", 920, "KIDNAPPING - GRAND ATTEMPT",
  "ORDER VIOLATIONS", 902, "VIOLATION OF TEMPORARY RESTRAINING ORDER",
  "FORGERY/FRAUD", 651, "DOCUMENT WORTHLESS ($200.01 & OVER)",
  "KIDNAPPING", 910, "KIDNAPPING",
  "SEX OFFENSES", 814, "CHILD PORNOGRAPHY",
  "WEAPONS", 756, "WEAPONS POSSESSION/BOMBING",
  "WEAPONS", 931, "REPLICA FIREARMS(SALE,DISPLAY,MANUFACTURE OR DISTRIBUTE)", 
  "TRAFFIC", 438, "RECKLESS DRIVING",
  "FORGERY/FRAUD", 660, "COUNTERFEIT", 
  "THEFT", 950, "DEFRAUDING INNKEEPER/THEFT OF SERVICES, OVER $950.01",
  "OTHER", 943, "CRUELTY TO ANIMALS",
  "OTHER", 949, "ILLEGAL DUMPING",
  "OTHER", 933, "PROWLER", 
  "DRUG OFFENSES", 865, "DRUGS, TO A MINOR",
  "FORGERY/FRAUD", 652, "DOCUMENT WORTHLESS ($200 & UNDER)",
  "OTHER THEFT", 446, "PETTY THEFT - AUTO REPAIR",
  "OTHER", 944, "CONSPIRACY",
  "OTHER THEFT", 349, "GRAND THEFT / AUTO REPAIR",
  "OTHER", 942, "BRIBERY", 
  "OTHER THEFT", 347, "GRAND THEFT / INSURANCE FRAUD",
  "CHILD NEGLECT", 870, "CHILD ABANDONMENT",
  "OTHER", 880, "DISRUPT SCHOOL",
  "OTHER", 924, "TELEPHONE PROPERTY - DAMAGE",
  "SEX OFFENSES", 840, "BEASTIALITY, CRIME AGAINST NATURE SEXUAL ASSLT WITH ANIM",
  "OTHER", 948, "BIGAMY",
  "DISORDERLY CONDUCT", 884, "FAILURE TO DISPERSE",
  "WEAPONS", 904, "FIREARMS EMERGENCY PROTECTIVE ORDER (FIREARMS EPO)",
  "SEX OFFENSES", 830, "INCEST (SEXUAL ACTS BETWEEN BLOOD RELATIVES)",
  "OTHER", 432, "BLOCKING DOOR INDUCTION CENTER",
  "DISORDERLY CONDUCT", 882, "INCITING A RIOT" 
)

# print(missing_categorie, n = nrow(missing_categorie))

Joining

  • MO & Tabelle
library(purrr)

crimes.df.joined <- crimes.df %>% 
  mutate(`MoCd Desc` = map(Mocodes, ~ mocodes.df$Beschreibung[match(.x, mocodes.df$Code)])) %>%
  relocate(`MoCd Desc`, .after = `Mocodes`)

crimes.df.joined %>%
  mutate(
    codes_str = map_chr(Mocodes, ~ paste(.x, collapse = ", ")),
    meanings_str = map_chr(`MoCd Desc`, ~ paste(.x, collapse = ", "))
  ) %>%
  select(DR_NO, codes_str, meanings_str) %>%
  head()
      DR_NO             codes_str
1 190326475                    NA
2 200106753       1822, 1402, 344
3 200320258             344, 1251
4 200907217             325, 1501
5 220614831 1822, 1501, 930, 2004
6 231808869   1822, 100, 930, 929
                                                                                                                                    meanings_str
1                                                                                                                                             NA
2                                                                                   Stranger, Evidence Booked (any crime), Removes vict property
3                                                                                                    Removes vict property, Victim was a student
4                                                                                                           Took merchandise, Other MO (see rpt)
5                          Stranger, Other MO (see rpt), Unauthorized use of victim's credit/debit card or number, Suspect is homeless/transient
6 Stranger, Suspect Impersonate, Unauthorized use of victim's credit/debit card or number, Unauthorized use of victim's bank account information

Subsetting

  • Area

  • Geschlecht

  • Abstammung

  • Art des Crimes

Übersicht des Dataframes

Fazit - Transformation & Bearbeitung

4. Geeignete Visualisierung und Aggregation der Daten

Aufgabenstellung (15 Pkt.)

Fassen Sie die Daten in einer geeigenten Form zur Beantwortung Ihrer formulierten Fragestellung zusammen. Ziehen Sie auch geeignete Visualisierungen der transformierten und/oder aggregierten Daten heran, um Ihre Aussagen entsprechend zu untermauern oder zu veranschaulichen.

Hier könne Sie auch geeignete statistische Verfahren bzw. Modellierungen nutzen, falls diese Ihnen bezüglich Ihrer Fragestellung weiterhelfen.

  • Welche Klassen von Straftaten werden wie häufig begangen?
    • Anzahl Proportional zu Schweregrad
    • Viele Diebstahle & andere Straftaten um Geld zu beschaffen
  • Welche Stadtteile sind besonders betroffen?
    • Ärmere Stadtteile
    • Stadtteile mit Gang Gebieten

Ortsabhängige Analysen

crimes.df.no_id_theft <- subset(crimes.df, `Crm Cd` != 354)
length(crimes.df.no_id_theft)
[1] 26
crimes.df.no_id_theft <- crimes.df.no_id_theft[1:5000, ]
# Bibliothek laden
library(leaflet)

# Eine interaktive OpenStreetMap-Karte erstellen
leaflet(crimes.df.no_id_theft) %>%
  addTiles() %>%  # Standard-OSM-Karte
  setView(lng = -118.2437, lat = 34.0522, zoom = 9) %>%  # Ansicht auf Los Angeles
  addCircleMarkers(~LON, ~LAT, 
                   radius = 5, 
                   color = "blue", 
                   stroke = FALSE, 
                   fillOpacity = 0.8, 
                   popup = ~paste("ID:", `Crm Cd Desc`))  # Popup mit der DR_NO ID
library(leaflet.extras)

leaflet(crimes.df) %>%
  addTiles() %>%  # Grundkarte hinzufügen
  setView(lng = -118.2437, lat = 34.0522, zoom = 9) %>%
  addHeatmap(
    lng = ~LON,
    lat = ~LAT,
    intensity = nrow(crimes.df),     # Gewichtung (z.B. Anzahl der Vorfälle, falls vorhanden)
    blur = 20,          # Blur-Faktor
    max = 0.05,         # Maximale Intensität
    radius = 10         # Radius für die Heatmap-Punkte
  )

Welche Stadtteile sind besonders betroffen?

Welche Stadtteile haben besonders viele Straftaten mit Gang Einfluss?

Gibt es besonders Gefährliche Arten von Orten ([Premise Desc])

Mit Lolipop Chart? (X-Achse: Orte)

Personenabhängige Analysen

Welche Bevölkerungsgruppe ist am meisten gefährdet? (Abhängig von Alter, Geschlecht, Abstammung)

Vergleich m & f mit Population Pyramid?

Wie häufig werden welche Bevölkerungsgruppen angezeigt / vgl zu wie viele Leute welcher Bevölkerungsgruppe wohnen dort?

Zeitliche Analysen

Wie hat sich die Kriminalität über die 3 Jahre verändert?

Jahre zusammen in Time Series Plot Jahre in Seasonal Plot vergleichen? (Eine Linie Pro Jahr) Slope Chart mit Senkrechten Strichen für Jahre und Slopes für Straftatsklassen

Welche Straftaten werden häufig am Anfang/Ende des Monats begangen?

Gibt es zeitliche Rahmen in denen mehr oder weniger Verbrechen geschehen?

Diverging Bars für Stunden/Tage mit Durchschnitt als Mittelwert

Analysen der Straftaten

Welche Arten von Waffen wird am meisten genutzt?

Waffle Chart für Straftaten

Welche Klassen von Straftaten werden wie häufig begangen?

TreeMap? Klassen als Kategorie und Crm Cd als Unterkategorie

Wie viel Prozent haben zu Verhaftungen (und welcher Art) geführt?

Pie Chart mit Verhältnis von verschiedenen Stati

Wie effektiv ist die LAPD bei der Aufklärung verschiedener Arten von Straftaten?

Categorized Bar Chart, jede Bar aufgeteilt in Stati (Alle Bars gleich hoch?)

5. Zusammenfassung und Schlussfolgerung

Aufgabenstellung (10 Pkt.)

Fassen Sie hier Ihre Fragestellung und Ihre Erkenntnisse aus Ihrer Analyse zusammen.

Sind Ihre Erkenntnisse das, was Sie erwartet haben? Warum oder warum nicht?

Quellenverzeichnis